package com.seal.commons.infrastructure.facade.jms;

/**
 * ClassName:MessageSender <br/>
 * Func: jms消息发送接口 <br/>
 * Date:     2019-06-05 09:46 <br/>
 *
 * @author yong.huang
 * @see
 * @since JDK 1.8
 */
public interface MessageSender {


    /**
     * 同步发送消息
     * @param topic
     * @param tags
     * @param message
     */
    void send(String topic, String tags, final Object message);

    /**
     * 异步发送消息
     * @param topic
     * @param tags
     * @param message
     */
    void sendAsync(String topic, String tags, final Object message, MessageCallback callback);


    /**
     * 发送消息
     * @param topic
     * @param tags
     * @param message
     */
    void sendOnce(String topic, String tags, final Object message);

    /**
     *  延迟发送消息
     * @param topic
     * @param tags
     * @param message
     * @param deplayLevel
     */
    void sendDeplay(String topic, String tags, final Object message, int deplayLevel);



}
